package com.ruoyi.carApi.api;

import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Pointer;
import com.sun.jna.platform.win32.WinDef;


public interface JNADll extends Library {
	

	String strdir = "D:\\ideaProject\\wjzhid-gating\\dll\\ice_ipcsdk.dll";

    JNADll ICESDKInstance = (JNADll) Native.loadLibrary(strdir, JNADll.class);
    /**
     *  @brief  全局初始化
     *  @return void
     */
    public void ICE_IPCSDK_Init();

    /**
     *  @brief  全局释放
     *  @return void
     */
    public int ICE_IPCSDK_Fini();

    /**
     *  @brief  连接相机，不带视频流
     *  @param  [IN] pcIP   相机ip
     *  @return sdk句柄(连接不成功时，返回值为null）
     */
    public Pointer ICE_IPCSDK_OpenDevice(String ip);

    /**
     *  @brief  断开连接
     *  @param  [IN] hSDK   连接相机时返回的句柄值
     *  @return void
     */
    public void ICE_IPCSDK_Close(Pointer hSDK);

    /**
     *  @brief  连接视频
     *  @param  [IN] hSDK           连接相机时返回的句柄值
     *  @param  [IN] u8MainStream   是否请求主码流（1：主码流 0：子码流）
     *  @param  [IN] hWnd           预览视频的窗口句柄
     *  @return 1表示成功，0表示失败
     */
    public int ICE_IPCSDK_StartStream(Pointer hSDK, int u8MainStream, WinDef.HWND hWnd);

    /**
     *  @brief  断开视频
     *  @param  [IN] hSDK   连接相机时返回的句柄值
     *  @return void
     */
    public void ICE_IPCSDK_StopStream(Pointer hSDK);

    /**
     *  @brief  软触发扩展接口
     *  @param  [IN]  hSDK          由连接相机接口获得的句柄
     *  @return 1表示成功，0表示失败
     */
    public int ICE_IPCSDK_TriggerExt(Pointer hSDK);

    /**
     *  @brief  打开道闸
     *  @param  [IN] hSDK  SDK句柄
     *  @return 1 成功 0 失败
     */
    public int ICE_IPCSDK_OpenGate(Pointer hSDK);

    /**
     *  @brief  设置获得实时识别数据的相关回调函数
     *  @param  [IN] hSDK       连接相机时返回的sdk句柄
     *  @param  [IN] pfOnPlate  实时识别数据，通过该回调获得
     *  @param  [IN] pvParam    回调函数中的参数，能区分开不同的使用者即可
     *  @return void
     */
    public void ICE_IPCSDK_SetPlateCallback(Pointer hSDK, IPlateCallback callback, int param);



    /**
     *  @brief  车牌识别回调信息输出编码配置
     *  @param  [IN] hSDK       连接相机时返回的sdk句柄
     *  @param  [IN] enable		是否以UTF-8编码输出抓拍信息（1：UTF8格式输出车牌号，0：GB2312格式输出车牌号）
     *  return  void
     */
    public void ICE_IPCSDK_EnableUTF8(Pointer hSDK, int enable);
}
